# 代码所有：cxw
# 开发时间：2021/6/26 14:31

#python中的运算符

#算术运算符
print(1+1)
print(2-1)
print(2*4)
print(1/2)
print(11//2)  #整除运算  #5
print(11%2)   #取余运算   #1
print(2**2)   #幂运算符  #4
print(2**3)  #表示的是2的3次方  #8
#算术运算符里的特例
print(9//4)  #2
print(-9//-4)  #2
print(9//-4)  #-3
print(-9//4)   #-3
#整除中，整数中一正一负要向下取整，就是取你自己小的最近的整数，取数轴这一数字左侧的值
print(-8//5)  #-2


print(9%-4)  #-3   余数=9-（-4）*（-3）  商是由9//-4得来
print(-9%4)  #3   余数=-9-（4）*（-3）
#在取余运算中要遵循公式：余数=被除数-除数*商

#赋值运算符
#运算方式：从右到左
i=3+4
print(i)
a=b=c=20 #链式赋值
print(a,type(a),id(a))  #id是内存地址
print(b,type(b),id(b))
print(c,type(c),id(c))
print('-----支持参数赋值----')
a=20
a+=30 #相当于a+30再赋值给a
print(a)  #50
a-=10  #相当于a-30再赋值给a
print(a)  #40
a*=10 #相当于a*10再赋值给a
print(a,type(a))  #400
a/=3
print(a,type(a))
a//=2  #整除
print(a,type(a))

#支持系列解包赋值  要求对象和等号要相对应
a,b,c=20,30,40
print(a,b,c)

print('-----使用系列赋值交换两个数的值---')
a,b=10,20
print('交换之前',a,b)
a,b=b,a
print('交换之后',a,b)



#比较运算符，对变量或者表达式的结果进行大小，真假等比较
#且比较运算符的结果为bool类型，不是True就是False
a,b=10,20
print('a>b吗？',a>b)  #False
print('a<b吗？',a<b)  #True
print('a<=b吗？',a<=b)  #True
print('a>=b吗？',a>=b)  #False
print('a==b吗？',a==b)  #False
print('a!=b吗？',a!=b)   #True

'''
一个=称为赋值运算符， ==称为比较运算符
一个变量有三部分组成，标识，类型，值
== 比较的是值还是标识？ 比较的是值
比较对象（id）的 标识使用的是 is及 is not
'''

a=10
b=10
print(a==b) #True  说明a与b的value相等
print(a is b)  #True  说明a与b的id标识也相等


#下面代码没有学过，后续将会接触到
list1=[11,22,33,44]
list2=[11,22,33,44]
print(list1==list2)  #True  value相同
print(list1 is list2)  #False  id不同
print(id(list1))
print(id(list2))
print(list1 is not list2) #True id是不相等的